A Mechanized Program Verifier
نویسنده
چکیده
In my view, the “verification problem” is the theorem proving problem, restricted to a computational logic. My approach is: adopt a functional programming language, build a general purpose formal reasoning engine around it, integrate it into a program and proof development environment, and apply it to model and verify a wide variety of computing artifacts, usually modeled operationally within the functional programming language. Everything done in this approach is software verification since the models are runnable programs in a subset of an ANSI standard programming language (Common Lisp). But this approach is of interest to proponents of other approaches (e.g., verification of procedural programs or synthesis) because of the nature of the mathematics of computing. I summarize the progress so far using this approach, sketch the key research challenges ahead and describe my vision of the role and shape of a useful verification system.
منابع مشابه
Automating Theorem Proving with SMT
The power and automation offered by modern satisfiability-modulotheories (SMT) solvers is changing the landscape for mechanized formal theorem proving. For instance, the SMT-based program verifier Dafny supports a number of proof features traditionally found only in interactive proof assistants, like inductive, co-inductive, and declarative proofs. To show that proof tools rooted in SMT are gro...
متن کاملMechanized Analysis of Multi-Secret Sharing Based on Lagrange Interpolating Polynomial in the Applied Pi-calculus
In this paper, we give an abstraction of multi-secret sharing schemes based on lagrange interpolating polynomial that is accessible to a fully mechanized analysis. The abstraction is formalized within the applied pi-calculus using an equational theory that abstractly characterizes the cryptographic semantics of secret share. Based on that, we verify the threshold certificate protocol in a conve...
متن کاملRotation of Sequences: Algorithms and Proofs
Sequence rotation consists of a circular shift of the sequence’s elements by a given number of positions. We present the four classic algorithms to rotate a sequence; the loop invariants underlying their correctness; detailed correctness proofs; and fully annotated versions for the Boogie verifier. The presentation illustrates in detail both how the algorithms work and what it takes to carry ou...
متن کاملConvertible limited (multi-) verifier signature: new constructions and applications
A convertible limited (multi-) verifier signature (CL(M)VS) provides controlled verifiability and preserves the privacy of the signer. Furthermore, limited verifier(s) can designate the signature to a third party or convert it into a publicly verifiable signature upon necessity. In this proposal, we first present a generic construction of convertible limited verifier signature (CLVS) into which...
متن کاملVerified Calculations
Calculational proofs—proofs by stepwise formula manipulation—are praised for their rigor, readability, and elegance. It seems desirable to reuse this style, often employed on paper, in the context of mechanized reasoning, and in particular, program verification. This work leverages the power of SMT solvers to machine-check calculational proofs at the level of detail they are usually written by ...
متن کامل